package com.example;

import java.util.Random;

/**
 * 案例二：验证码
 */
public class Test2 {
    public static void main(String[] args) {
        // 需求:开发一个程序,可以生成指定位数的验证码,每位可以是数字,大小写字母
        String code = getCode(6);
        System.out.println(code);
    }

    /**
     * 生成指定位数的验证码
     *
     * @param n 验证码的位数
     * @return 返回生成的验证码
     */
    public static String getCode(int n) {
        // 定义一个String类型的变量用于记住产生的每位随机字符
        String code = "";
        Random r = new Random();
        for (int i = 1; i <= n; i++) {
            // 生成 0 - 2 之间的随机数 0表示数字 1表示小写字母 2大写字母
            int index = r.nextInt(3);
            switch (index) {
                case 0:
                    // 拼接0-9之间的随机数
                    code += r.nextInt(10);
                    break;
                case 1:
                    // 拼接a-z之间的随机字母 a-z -> 97-122
                    code += (char) (r.nextInt(26) + 97);
                    break;
                case 2:
                    // 拼接A-Z之间的随机字母 A-Z -> 65-90
                    code += (char) (r.nextInt(26) + 65);
                    break;
            }
        }
        return code;
    }
}
